Turn GskRenderNode into a derivable type
authorEmmanuele Bassi <ebassi@gnome.org>
Tue, 7 Apr 2020 22:33:54 +0000 (23:33 +0100)
committerEmmanuele Bassi <ebassi@gnome.org>
Wed, 8 Apr 2020 14:40:15 +0000 (15:40 +0100)
commitd701a892815453dd38e19062761443eeda54a7c5
treecc1d91b6e88ad16d97f9204817ad7b650c66150b
parent5e095cd208db14625a549a766f60c752c066da7b
Turn GskRenderNode into a derivable type

Language bindings—especially ones based on introspection—cannot deal
with custom type hiearchies. Luckily for us, GType has a derivable type
with low overhead: GTypeInstance.

By turning GskRenderNode into a GTypeInstance, and creating derived
types for each class of node, we can provide an introspectable API to
our non-C API consumers, with no functional change to the C API itself.
12 files changed:
gsk/broadway/gskbroadwayrenderer.c
gsk/gl/gskglnodesample.c
gsk/gl/gskglrenderer.c
gsk/gskenums.h
gsk/gskrendernode.c
gsk/gskrendernode.h
gsk/gskrendernodeimpl.c
gsk/gskrendernodeparser.c
gsk/gskrendernodeprivate.h
gsk/vulkan/gskvulkanrenderpass.c
gtk/gtkmain.c
gtk/inspector/recorder.c